﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;
using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;
using BussinessLogicTecnoPez;

namespace BussinessLogicTecnoPez.Seguridad_Tecnopez
{
    [Serializable]
    [DBTable("ROLES")]
    public class Rol : EntityBase<Rol>
    {
        private int _idRol;
        private string _nombre;
        private string _descripcion;
        private FuncionesRol objPermisos;

        [DBField("IDROL",true,true)]
        public int IdRol
        {
            get { return this._idRol; }
            set { this._idRol = value; }
        }

        [DBField("NOMBRE",false,false)]
        [FriendlyName("Nombre",true,true, FriendlyName.FilterType.String)]
        [NotNullValidator(MessageTemplate = "Nombre: Debe tener algun valor.")]
        [StringLengthValidator(0, 200, MessageTemplate = "Nombre: Tamaño máximo es de 200 carateres.")]
        [TecnoPezNoEmptyStringValidator("Nombre: Debe tener algun valor.")]
        public string Nombre
        {
            get { return this._nombre; }
            set { this._nombre = value; }
        }

        [DBField("DESCRIPCION",false,false)]
        [FriendlyName("Descripción",true,true, FriendlyName.FilterType.String)]
        [NotNullValidator(MessageTemplate = "Descripción: Debe tener algun valor.")]
        [StringLengthValidator(0, 200, MessageTemplate = "Descripción: Tamaño máximo es de 200 carateres.")]
        [TecnoPezNoEmptyStringValidator("Descripción: Debe tener algun valor.")]
        public string Descripcion
        {
            get { return this._descripcion; }
            set { this._descripcion = value; }
        }

        [DBFieldDetail("IDROL", typeof(FuncionRol))]
        public FuncionesRol Permisos
        {
            get { return objPermisos; }
            set { objPermisos = value; }
        }

        public override string ToString()
        {
            return this.Nombre;
        }
    }
}
